/**
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2007，所有权利保留。
 * 
 * 项目名：	rumba
 * 文件名：	IBMenuMgr.java
 * 模块说明：	
 * 修改历史：
 * Apr 30, 2007 - lxm - 创建。
 */
package com.hd123.rumba.navigation.menu;

import net.sf.hibernate.HibernateException;

import com.hd123.rumba.exception.BusinessException;
import com.hd123.rumba.runtime.biz.IBManager;

/**
 * 菜单 | 业务层 | 管理员 | 接口类
 * 
 * @author lxm
 * 
 */
public interface IBMenuMgr extends IBManager {

  /**
   * 创建一个新的菜单。由此创建的菜单始终属于root域。
   * 
   * @return 返回创建的菜单。
   * @throws BusinessException
   * @throws HibernateException
   */
  public BMenu createMenu() throws BusinessException, HibernateException;

  /**
   * 创建一个新的菜单。
   * 
   * @param domainUuid
   *          指定菜单所属域uuid。
   * @return 返回创建的菜单。
   * @throws BusinessException
   * @throws HibernateException
   */
  public BMenu createMenu(String domainUuid) throws BusinessException, HibernateException;

  /**
   * 复制指定菜单项的所有下级菜单项，返回新的菜单对象。<br>
   * 不包括指定的菜单项。
   * 
   * @param menu
   *          指定的来源菜单
   * @param item
   *          指定的菜单项。
   * @return 返回新的菜单对象。
   * @throws BusinessException
   * @throws HibernateException
   */
  public BMenu cloneSubtree(BMenu menu, BMenuItem item) throws BusinessException,
      HibernateException;
}
